package ophiux.wechatpay.sdk.request;

import java.util.HashMap;
import java.util.Map;

import ophiux.wechatpay.sdk.response.RefundQueryResponse;

/**
 * 查询退款   	请求参数
 * <br/>请求地址:https://api.mch.weixin.qq.com/pay/refundquery
 * <br/><h1>创建人: hehailong</h1><br/>
 * 创建时间：2017-7-7下午3:30:36<br/>
 * 修改记录1：
 */
public class RefundQueryRequest extends OphiuxBaseRequest<RefundQueryResponse>{

	//字段名	变量名	必填	类型	示例值	描述
	/** 随机字符串	nonce_str	是	String(32)	5K8264ILTKCH16CQ2502SI8ZNMTM67VS	随机字符串，不长于32位。推荐随机数生成算法 */
	private String nonce_str;
	/** 签名	sign	是	String(32)	C380BEC2BFD727A4B6845133519F3AD6	签名，详见签名生成算法 */
	private String  sign;
	
	/**============  四选一   ==================*/
	/** 微信订单号	transaction_id	String(32)	1217752501201407033233368018	微信订单号查询的
	 * 优先级是： refund_id > out_refund_no > transaction_id > out_trade_no 
	 */
	private String transaction_id;
	/** 商户订单号	out_trade_no	String(32)	1217752501201407033233368018	商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*@ ，且在同一个商户号下唯一。 */
	private String out_trade_no;
	/** 商户退款单号	out_refund_no	String(32)	1217752501201407033233368018	商户系统内部的退款单号，商户系统内部唯一，只能是数字、大小写字母_-|*@ ，同一退款单号多次请求只退一笔。 */
	private String out_refund_no;
	/** 微信退款单号	refund_id	String(32)	1217752501201407033233368018  	微信生成的退款单号，在申请退款接口有返回 */
	private String refund_id;
	/**============  四选一   ==================*/
	
	@Override
	public String getApiMethod() {
		return "POST";
	}

	@Override
	public String getApiVersion() {
		return null;
	}

	@Override
	public Map getTextParam() {
		Map<String, String>  map = new HashMap<String, String>();
		map.put("nonce_str", nonce_str);
		map.put("sign", sign);
		map.put("transaction_id", transaction_id);
		map.put("out_trade_no", out_trade_no);
		map.put("out_refund_no", out_refund_no);
		map.put("refund_id", refund_id);
		
		return map;
	}

	@Override
	public Class<RefundQueryResponse> getResponseClass() {
		return RefundQueryResponse.class;
	}

	public String getNonce_str() {
		return nonce_str;
	}

	public void setNonce_str(String nonce_str) {
		this.nonce_str = nonce_str;
	}

	public String getSign() {
		return sign;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

	public String getTransaction_id() {
		return transaction_id;
	}

	public void setTransaction_id(String transaction_id) {
		this.transaction_id = transaction_id;
	}

	public String getOut_trade_no() {
		return out_trade_no;
	}

	public void setOut_trade_no(String out_trade_no) {
		this.out_trade_no = out_trade_no;
	}

	public String getOut_refund_no() {
		return out_refund_no;
	}

	public void setOut_refund_no(String out_refund_no) {
		this.out_refund_no = out_refund_no;
	}

	public String getRefund_id() {
		return refund_id;
	}

	public void setRefund_id(String refund_id) {
		this.refund_id = refund_id;
	}



	
	
}
